1.14.10 外部系统对接
1.说明:
E聊H5移动端支持外部系统的接入,支持与外部系统的互联互通.
2.接入方式
外部系统到E聊: H5支持通过URL跳转的方式实现隐性登录,实现业务系统与E聊的用户系统打通
E聊到外部系统: E聊通过URL跳转到外部系统时,携带用户的账号与登录凭证
2.1 外部Web系统接入E聊H5移动端
场景: 客户已有一个在运营的业务系统,需要将聊天业务接入, 实现业务系统与E聊的用户系统打通
实现参考如下:
流程说明:
- 调用接口admin登录,获取jwt.(后台接口)
- 调用接口注册一个新账号(后台接口)
- 使用该新账号在业务系统预登录, 获取用户jwt.(前端)
- 跳转到echat h5 页面, 并将用户账号auid, 用户凭证, 登录方式通过url 传值.
- echat h5 端完成自动登录,跳转到聊天界面.
通过传递jwt的方式有效地避免了用户密码等敏感信息对外暴露的风险.
相关API格式如下:
admin登录,获取jwt(admin权限, 不要传到客户端使用)
// admin登录,获取jwt
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \
"email": "183186147%40qq.com", \
"password": "123456" \
}' 'http://localhost:8082/v1/admin_login/sdk_user_login'
参数说明:
参数名 | 取值 | |
---|---|---|
登录邮箱地址 | ||
password | 登录密码 | |
返回值: jwt
注册账号:
// 注册账号, authorization 值的格式为:admin+空格+jwt
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'authorization: admin eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzZGtVc2VySnd0IiwiU0RLX1VJRCI6IjEiLCJOQU1FIjoia29uZ2R6cSIsIlJPTEUiOiJBRE1JTiIsImV4cCI6MTY1Mjg1MDQwN30.bbfKVGT-3KZu19xrzs4zb_TmGKSCUku_UE7cuo8ECB-GYSuVOzB_579nP20M-DRAR7yOT4tqgGaPHgZdD8PeIA' -d '{ \
"appKey": "TSDKTEST00001", \
"auid": "13900139000", \
"token": "123456", \
"avatar": "", \
"birth": "", \
"businessPlatform": "SOCIAL", \
"email": "", \
"ex": "{}", \
"gender": 1, \
"mobile": "13900139000", \
"name": "注册的用户名", \
"sign": "", \
"userType": "USER" \
}' 'http://8.134.89.229/v1/user/add'
参数说明:
参数名 | 取值 | 是否必填 |
---|---|---|
appKey | 固定为TSDKTEST00001 | 是 |
mobile | 要注册的账号的手机号 | 是 |
auid | 要注册的账号 | 是 |
token | 要注册的账号密码 | 是 |
name | 要注册的账号名称 | 是 |
businessPlatform | 业务平台标识(SOCIAL:社交版) | 否 |
userType | 用户类型(USER:普通用户) | 否 |
avatar | 用户头像, url地址 | 否 |
birth | 用户生日 | 否 |
用户邮箱地址 | 否 | |
ex | 用户拓展属性, 字符串格式 | 否 |
用户预登录, 获取客户端登录jwt, 该jwt仅有当前用户的权限(客户端接口)
// 用户预登录
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ \
"appKey": "TSDKTEST00001", \
"loginAccount": "13800138001", \
"password": "123456" \
}' 'http://localhost:8082/v1/user_auth/pre_login'
参数说明:
参数名 | 取值 | |
---|---|---|
appKey | 固定为TSDKTEST00001 | |
loginAccount | 登录账号auid | |
password | 登录密码 | |
返回值: jwt
之后使用参数跳转到移动端H5
url格式如下:
http://192.168.30.181:8080/?jwt=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ1c2VySnd0IiwiQVBQX0tFWSI6IiIsIlVTRVJfQVVJRCI6IjEzODAwMTM4MDAwIiwiZXhwIjoxNjUyODQ2Mjc4fQ.zCWuu-VZCi8lPcopV7yff5NU-JhS0ao_tp53Czw3x2wYMQlHAXP8RpnrTxeFXiocUHvyUXvcxKQugZqaoxgWzA&auid=13800138000&login_way=PRE_LOGIN&locale=en-US
URL参数说明:
参数名 | 取值 | 是否必填 |
---|---|---|
jwt | 用户登录凭证 | 是 |
auid | 用户登录账号 | 是 |
login_way | PRE_LOGIN | 是 |
locale | 后端API多语言支持(en-US:英文 zh-CN:中文) | 否 |
2.1 E聊移动端接入外部业务系统
在E聊移动端的"发现页",可以在E聊管理台动态配置发现页的条目:
配置好的发现页条目会在移动端显示:
业务系统二次开发:
当为“发现页”条目配置了"URL传递登录信息"一项后,跳转到业务系统时,URL通过参数会携带用户的auid, 用户的登录凭证jwt,业务系统通过该登录凭证可以实现API开发,按需获取该用户信息在E聊后台的数据。
客户端API的开发请查看【专业版文档-后端HTTP API】一文.
URL传递登录信息参数说明:
参数名 | 取值 | |
---|---|---|
jwt | 当前账号数字凭证jwt, 仅具有当前登录账号的权限 | |
auid | 当前账号auid |